package org.wukongcrm.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
    * 发票表
    */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "invoice")
public class Invoice implements Serializable {
    /**
     * 发票id
     */
    @TableId(value = "invoice_no", type = IdType.INPUT)
    private Integer invoiceNo;

    /**
     * 发票申请编号
     */
    @TableField(value = "invoice_apply_number")
    private String invoiceApplyNumber;

    /**
     * 客户编号
     */
    @TableField(value = "customer_id")
    private Integer customerId;

    /**
     * 合同编号
     */
    @TableField(value = "contract_id")
    private Integer contractId;

    /**
     * 开票金额
     */
    @TableField(value = "invoice_money")
    private BigDecimal invoiceMoney;

    /**
     * 开票日期
     */
    @TableField(value = "invoice_date")
    private Date invoiceDate;

    /**
     * 开票类型
     */
    @TableField(value = "invoice_type")
    private Integer invoiceType;

    /**
     * 备注
     */
    @TableField(value = "remark")
    private String remark;

    /**
     * 抬头类型 1单位 2个人
     */
    @TableField(value = "title_type")
    private Integer titleType;

    /**
     * 开票抬头
     */
    @TableField(value = "invoice_title")
    private String invoiceTitle;

    /**
     * 纳税识别号
     */
    @TableField(value = "tax_number")
    private String taxNumber;

    /**
     * 开户行
     */
    @TableField(value = "deposit_bank")
    private String depositBank;

    /**
     * 开户账户
     */
    @TableField(value = "deposit_account")
    private String depositAccount;

    /**
     * 开票地址
     */
    @TableField(value = "deposit_address")
    private String depositAddress;

    /**
     * 电话
     */
    @TableField(value = "telephone")
    private String telephone;

    /**
     * 联系人名称
     */
    @TableField(value = "contacts_name")
    private String contactsName;

    /**
     * 联系方式
     */
    @TableField(value = "contacts_mobile")
    private String contactsMobile;

    /**
     * 邮寄地址
     */
    @TableField(value = "contacts_address")
    private String contactsAddress;

    /**
     * 审批记录id
     */
    @TableField(value = "examine_record_id")
    private Integer examineRecordId;

    /**
     * 审核状态 0待审核、1通过、2拒绝、3审核中、4撤回
     */
    @TableField(value = "check_status")
    private Integer checkStatus;

    /**
     * 负责人ID
     */
    @TableField(value = "owner_user_id")
    private Long ownerUserId;

    /**
     * 发票号码
     */
    @TableField(value = "invoice_number")
    private String invoiceNumber;

    /**
     * 实际开票日期
     */
    @TableField(value = "real_invoice_date")
    private Date realInvoiceDate;

    /**
     * 物流单号
     */
    @TableField(value = "logistics_number")
    private String logisticsNumber;

    /**
     * 开票状态 0 未开票， 1 已开票
     */
    @TableField(value = "invoice_status")
    private Integer invoiceStatus;

    /**
     * 创建人ID
     */
    @TableField(value = "create_user_id")
    private Long createUserId;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    private Date updateTime;

    /**
     * 批次id
     */
    @TableField(value = "batch_id")
    private String batchId;

    private static final long serialVersionUID = 1L;
}